// 任务组件

//参数说明:
//user_manager:WEBGRID.USERMANAGER			用户组件,主要是提供用户的ID
WEBGRID.TASKMANAGER = function(user_manager){
	
	//如果用户还没有登录获得用户ID
	//则任务组件自动登录
	if(user_manager.id == null)
	{
		user_manager.login();
	}	
	//用户ID
	this.user_id 	= user_manager.id;
	//从服务器下载的运行代码
	this.func	 	= null;
	//计算结果
	this.result		= null;
	//计算数据
	this.data		= null;
}

WEBGRID.TASKMANAGER.prototype = {
	//任务准备
	//1 下载任务执行的脚本代码
	//2 下载任务计算数据
	//3 开始计算
	prepare:function(){
		this.getFunction();							//下载代码
		this.getData();								//下载数据
		this.result = this.func.main(this.data);	//计算并将结果保存起来
	},
	
	//下载计算程序
	getFunction:function(){
		var url = WEBGRID.CONFIG.server.host + WEBGRID.CONFIG.server.function_download_port;
		
		new Ajax.Request(url,
						 {
							 method: 'POST',
							 asynchronous: false,
							 onSuccess:this.handleGetFunction
						 });
		
		this.func = WEBGRID.TEMP;		//将代码对象保存到func属性中
	},
	
	handleGetFunction:function(response){
		WEBGRID.TEMP = eval('('+response.responseText+')');
	},
	
	
	//下载计算数据
	getData:function(){
		var url = WEBGRID.CONFIG.server.host + WEBGRID.CONFIG.server.data_download_port;
		
		new Ajax.Request(url,
						 {
							 method: 'POST',
							 asynchronous: false,
							 onSuccess:this.handleGetData
						 });
		this.data = WEBGRID.TEMP;
	},
	
	handleGetData:function(response){
		WEBGRID.TEMP = response.responseText;
	}
};